import uuid
import libnum
import gmpy2

flag = "flag{" + str(uuid.uuid4()) + "}"
print(flag)

m = libnum.s2n(flag)
print(gmpy2.bit_length(m ** 3))
while True:
    p = libnum.generate_prime(504)
    q = libnum.generate_prime(504)
    n = p * q
    phi_n = (p - 1) * (q - 1)
    e = 3
    if gmpy2.gcd(e, phi_n) == 1 and  phi_n%e !=0:
        break

c = pow(m, e, n)
print("n=", n)
print("e=", e)
print("c=", c)
n= 897689713904270926125185363063300464288443759514604978061030674530085769927047067218373834740992984880259629119113152757476487267473190357899977562749983036951254370873918724645123954549613046242546686756307350356331377770828764266610325832384427577261834558331280822135314426219609964659939758929535227
e= 3
c= 175676150266642592894609426846232485939668188620182448314629221874813777999204540712492127321162437109772452031119063215393464437496614322154492340798057247957910916528910603553387900353314631561390529593164407821975529824164327343144414005429380024565184017104318273583368535418380092367261165822588261
